import Mock from 'mockjs'

// 定义角色分布  
const roles = ['admin', 'principal', 'principal', 'individualTrainer', 'individualTrainer', 'individualTrainer', 'parent', 'parent', 'parent', 'parent', 'parent', 'parent', 'parent', 'parent', 'parent', 'parent', 'parent', 'parent', 'parent'];

// 打乱角色数组  
// const shuffleArray = (array) => {  
//     for (let i = array.length - 1; i > 0; i--) {  
//         const j = Math.floor(Math.random() * (i + 1));  
//         [array[i], array[j]] = [array[j], array[i]];  
//     }  
// };  

//shuffleArray(roles); // 随机打乱角色顺序  

// 定义固定的中文名  
const names = [
    '张三', '李四', '王五', '赵六', '钱七',
    '孙八', '周九', '吴十', '郑十一', '冯十二',
    'individualTrainer2', '褚十四', '卫十五', '蒋十六', '沈十七',
    'individualTrainer1', 'admin', 'principal1', 'principal2'
];

// 定义可能的字段  
const parentValues = ['个性化评估', '儿童心理教育表(PEP-3简体中文版)', 'ABC'];

const projectList = Mock.mock({
    "list|6": [{
        'name': () => '@cname', // 中文名
        'account': `@word`, // 英文单词
        'phone': /1[3-9][0-9]{9}/, // 正则模式
        'deptName': Mock.mock('@cword(2,4)'), // 随机2-4字中文单词
        'id': '@guid', // guid
        // 'role': '@pick([' + roles.join(', ') + '])', // 从打乱的角色中随机选择
        //根据角色动态生成字段  
        'customField': function () {
            //if (this.role === 'parent') {  
            // 随机选择一个字段  
            // const chosenField = Mock.Random.pick(parentFields);  
            // return chosenField; // 返回随机选中的字段
            return Mock.Random.pick(parentValues); // 返回随机选中的值   
            // }  
            // return null; // 非parent角色不返回额外字段  
        },
        'date': () => Mock.Random.date('yyyy-MM-dd'), // 添加时间字段，格式为 yyyy-MM-dd  
        'trainingCompleted': () => Mock.Random.integer(0, 19), // 完成训练次数，随机生成0到19之间的数字 
        'completionTime': () => `${Mock.Random.integer(0, 59)}:${Mock.Random.integer(0, 59)}`, // 完成时间 xx:xx  
        'passRate': () => `${Mock.Random.integer(0, 100)}/${Mock.Random.integer(1, 100)} ${Mock.Random.integer(0, 100)}%`, // 通过率 xx/xx xx%  
        'duration': () => Mock.Random.integer(1, 120), // 时长，随机生成1到120分钟  
        'time': () => `00:${Mock.Random.integer(0, 59)}`, // 时间 00:xx  
        'dateTime': () => Mock.Random.date('yyyy-MM-dd') + ' ' + Mock.Random.time('HH:mm:ss'), // 日期 2024-xx-xx yy:yy:yy  
        'completion': '独立完成' // 完成状态
    }]
})

const laosList = Mock.mock({
    "list|3": [{
        'name': () => '@cname', // 中文名
        'account': `@word`, // 英文单词
        'phone': /1[3-9][0-9]{9}/, // 正则模式
        'deptName': Mock.mock('@cword(2,4)'), // 随机2-4字中文单词
        'id': '@guid', // guid
        // 'role': '@pick([' + roles.join(', ') + '])', // 从打乱的角色中随机选择
        //根据角色动态生成字段  
        'customField': function () {
            //if (this.role === 'parent') {  
            // 随机选择一个字段  
            // const chosenField = Mock.Random.pick(parentFields);  
            // return chosenField; // 返回随机选中的字段
            return Mock.Random.pick(parentValues); // 返回随机选中的值   
            // }  
            // return null; // 非parent角色不返回额外字段  
        }
    }]
})

const jiazList = Mock.mock({
    "list|2": [{
        'name': () => '@cname', // 中文名
        'account': `@word`, // 英文单词
        'phone': /1[3-9][0-9]{9}/, // 正则模式
        'deptName': Mock.mock('@cword(2,4)'), // 随机2-4字中文单词
        'id': '@guid', // guid
        // 'role': '@pick([' + roles.join(', ') + '])', // 从打乱的角色中随机选择
        //根据角色动态生成字段  
        'customField': function () {
            //if (this.role === 'parent') {  
            // 随机选择一个字段  
            // const chosenField = Mock.Random.pick(parentFields);  
            // return chosenField; // 返回随机选中的字段
            return Mock.Random.pick(parentValues); // 返回随机选中的值   
            // }  
            // return null; // 非parent角色不返回额外字段  
        }
    }]
})


export default [
    {
        url: '/Api/Project/GetList',
        type: 'post',
        response: (res) => {
            let _filter_list = [];
            if (res.body && res.body.key) {
                _filter_list = projectList.fileter(i => i.name == res.body.key)
            } else {
                _filter_list = projectList.list; // 如果没有条件，返回所有项目  
            }

            // 没错，你应该已经猜到了，res.body就是我们传入到接口的数据，我们可以在这里做些逻辑操作
            // res包含完整的请求头信息
            return {
                code: 200,
                message: "操作成功",
                data: _filter_list
            }
            // 使用return返回前端需要的数据
        }
    },
    {
        url: '/Api/LaosList/GetList',
        type: 'post',
        response: (res) => {
            let _filter_list = [];
            if (res.body && res.body.key) {
                _filter_list = laosList.fileter(i => i.name == res.body.key)
            } else {
                _filter_list = laosList.list; // 如果没有条件，返回所有项目  
            }

            // 没错，你应该已经猜到了，res.body就是我们传入到接口的数据，我们可以在这里做些逻辑操作
            // res包含完整的请求头信息
            return {
                code: 200,
                message: "操作成功",
                data: _filter_list
            }
            // 使用return返回前端需要的数据
        }
    },
    {
        url: '/Api/JiazList/GetList',
        type: 'post',
        response: (res) => {
            let _filter_list = [];
            if (res.body && res.body.key) {
                _filter_list = jiazList.fileter(i => i.name == res.body.key)
            } else {
                _filter_list = jiazList.list; // 如果没有条件，返回所有项目  
            }

            // 没错，你应该已经猜到了，res.body就是我们传入到接口的数据，我们可以在这里做些逻辑操作
            // res包含完整的请求头信息
            return {
                code: 200,
                message: "操作成功",
                data: _filter_list
            }
            // 使用return返回前端需要的数据
        }
    }
]
